In communication systems, when transmitting data across noisy channels or mediums such as wireless networks using radio frequency, microwave, and infrared, data can be lost or corrupted due to geographical and environmental factors and various signal noise sources. Such communication systems often employ error-correcting codes that introduce redundancy to the transmission of the data to ensure reliability of the data transmission, and in certain cases recover lost data and/or correct errors at the receiving end.
One fundamental aspect of data transmission through noisy channel is the Shannon limit, which defines the theoretical maximum rate at which data can be transmitted reliably through the channel. Error-correcting codes are designed to achieve sufficient reliability while approaching this limit. The Low Density Parity Check (LDPC) codes are such error correcting codes. Gallager, R. G., Low Density Parity Check Codes, Transactions of the IRE Professional Group on Information Theory, January 1962 explains the basic theory of the LDPC codes. MacKay, D. J. C. and Neal, R. M., Near Shannon limit performance of low density parity check codes. Electronics Letters. August 1996 further describes the characteristics of LDPC codes. Gallager, MacKay and Neal are hereby incorporated by reference in their entireties.
Traditionally, LDPC codes have not been widely adopted in practice due to a number of challenges. Encoding and decoding LDPC codes are highly complex. Another challenge is that encoding and decoding LDPC codes require storing very large non-sparse matrices, and that LDPC codes require large blocks to be effective, thus large data memory storage space is needed in the physical implementation. Therefore, there is a need, for communication systems that employ LDPC codes, to develop an encoding and decoding process that will reduce the amount of data memory storage space needed without introducing too much complexity.
U.S. Pat. No. 7,376,885 describes a method for reducing the memory storage requirement for check node message. The described method attempts to perform compression and decompression of check node messages so that less memory storage is used. However, this method fails to address the extra complexity, and the additional logic circuitry, for performing compression and decompression. In comparison, the presently claimed system and method focus on eliminating the memory buffers associated with the log-likelihood-ratio (LLR) data bits reordering, de-reordering, and demapping procedures, and that additional logic circuitry requirement is minimal.
Another way to reduce memory storage might be by modifying the LDPC coding scheme. U.S. Pat. No. 7,234,098 describes such a method by way of an encoder that generates a LDPC code having an outer Bose Chaudhuri Hocquenghem (BCH) code, which reduces the memory requirements for storage of the edge values. In comparison, the claimed system and method achieves memory storage reduction without modifying the LDPC codes.